#include "taskQueue.h"
int taskQueueInit(taskQueue_t *ptaskQueue){
    bzero(ptaskQueue,sizeof(taskQueue_t));
    //头尾指针都是NULL queueSize是0
    pthread_mutex_init(&ptaskQueue->mutex,NULL);
    pthread_cond_init(&ptaskQueue->cond,NULL);
    return 0;
}
int taskEnQueue(taskQueue_t *ptaskQueue, int netfd){
    // 链表的尾插法
    task_t * pTask = (task_t *)calloc(1,sizeof(task_t));
    pTask->netfd = netfd;
    if(ptaskQueue->queueSize == 0){
        ptaskQueue->pFront = pTask;
        ptaskQueue->pRear = pTask;
    }
    else{
        ptaskQueue->pRear->pNext = pTask;
        ptaskQueue->pRear = pTask;
    }
    ++ptaskQueue->queueSize;
    return 0;
}
int taskDeQueue(taskQueue_t *ptaskQueue){
    task_t *pCur = ptaskQueue->pFront;
    ptaskQueue->pFront = pCur->pNext;
    free(pCur);
    --ptaskQueue->queueSize;
    return 0;
}